<?php

require_once "Servicios.php";

/**
 * Description of GabineteServicios
 *
 * @author  Mariano Renkine
 * @author  Fernando Arau
 */
class GabineteBloqueoServicios extends Servicios
{

  function agregar(GabineteBloqueoDTO $gabineteBloqueoDTO)
  {
    $repoGabinete = new RepoGabineteBloqueo();
    $gabineteBloqueo = $this->deDTO($gabineteBloqueoDTO);
    $gabineteBloqueo->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoGabinete->agregar($gabineteBloqueo);
  }

  function modificar(GabineteBloqueoDTO $gabineteBloqueoDTO)
  {
    $repoGabinete = new RepoGabineteBloqueo();
    $gabineteBloqueo = $this->deDTO($gabineteBloqueoDTO);
    $gabineteBloqueo->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoGabinete->modificar($gabineteBloqueo);
  }

  function eliminar($id)
  {
    $repoGabinete = new RepoGabineteBloqueo();
    return $repoGabinete->eliminar($id);
  }

  function listar()
  {
    $repoGabineteBloqueo = new RepoGabineteBloqueo();
    $gabineteBloqueos = $repoGabineteBloqueo->listar();
    $gabineteServicios = new GabineteServicios();
    $gabineteBloqueosDTO = null;
    if (count($gabineteBloqueos) > 0)
    {
      foreach ($gabineteBloqueos as $gabineteBloqueo)
      {
        $gabineteDTO = $gabineteServicios->buscar($gabineteBloqueo->gabinete);
        $gabineteBloqueoDTO = new GabineteBloqueoDTO();
        $gabineteBloqueoDTO->setDesde($gabineteBloqueo->desde);
        $gabineteBloqueoDTO->setGabinete($gabineteDTO);
        $gabineteBloqueoDTO->setHasta($gabineteBloqueo->hasta);
        $gabineteBloqueoDTO->setId($gabineteBloqueo->idGabineteBloqueo);
        $gabineteBloqueoDTO->setVersion($gabineteBloqueo->version);
        $gabineteBloqueoDTO->setUsuario($gabineteBloqueo->usuario);
        $gabineteBloqueosDTO[] = $gabineteBloqueoDTO;
      }
    }
    return $gabineteBloqueosDTO;
  }

  function listarFuturos()
  {
    $repoGabineteBloqueo = new RepoGabineteBloqueo();
    $gabineteBloqueos = $repoGabineteBloqueo->listarFuturos();
    $gabineteBloqueosDTO = "";
    if ($gabineteBloqueos != null)
    {
      foreach ($gabineteBloqueos as $gabineteBloqueo)
      {
        $gabineteBloqueosDTO[] = $this->aDTO($gabineteBloqueo);
      }
    }
    return $gabineteBloqueosDTO;
  }

  function buscar($id)
  {
    $repoGabineteBloqueo = new RepoGabineteBloqueo();
    return $this->aDTO($repoGabineteBloqueo->buscar($id));
  }

  function aDTO(GabineteBloqueo $gabineteBloqueo)
  {
    $gabineteServicios = new GabineteServicios();
    $gabineteBloqueoDTO = new GabineteBloqueoDTO();
    $gabineteBloqueoDTO->setDesde($gabineteBloqueo->getDesde());
    $gabineteBloqueoDTO->setHasta($gabineteBloqueo->getHasta());
    $gabineteBloqueoDTO->setGabinete($gabineteBloqueo->getGabinete());
    $gabineteBloqueoDTO->setVersion($gabineteBloqueo->getVersion());
    $gabineteBloqueoDTO->setId($gabineteBloqueo->getId());
    $gabineteBloqueoDTO->setUsuario($gabineteBloqueo->getUsuario());
    return $gabineteBloqueoDTO;
  }

  function deDTO(GabineteBloqueoDTO $gabineteBloqueoDTO)
  {
    $gabineteBloqueo = new GabineteBloqueo();
    $gabineteServicios = new GabineteServicios();
    $gabineteBloqueo->setDesde($gabineteBloqueoDTO->getDesde());
    $gabineteBloqueo->setHasta($gabineteBloqueoDTO->getHasta());
    $gabineteBloqueo->setGabinete($gabineteServicios->deDTO($gabineteBloqueoDTO->getGabinete()));
    $gabineteBloqueo->setId($gabineteBloqueoDTO->getId());
    $gabineteBloqueo->setVersion($gabineteBloqueoDTO->getVersion());
    $gabineteBloqueo->setUsuario($gabineteBloqueoDTO->getUsuario());
    return $gabineteBloqueo;
  }

}

?>
